1. Field of the Invention.
The present invention relates to software processes for the automatic generation of numerical control (NC) tool paths in a CAD/CAM or manufacturing environment.
2. Background of the Invention
Mechanical CAD/CAM systems have been in existence for almost 20 years and were widely popularized in the late 1970's. Initially, CAD/CAM systems were used for creating detailed designs of mechanical parts and for documenting designs using annotations such as dimensions and notes. CAD/CAM systems gradually expanded to other applications such as analysis (e.g., finite element modeling) and manufacturing (e.g., generation of NC tool paths).
As parts are designed with a CAD/CAM system, the system creates computer models of the parts. To date, wireframe and surface modeling have been the predominant representation schemes for CAD/CAM part models. With wireframe modeling, a part is modeled by describing its edges (e.g., a box is represented by 12 lines), and with surface modeling, a part is surface modeled by describing its surfaces (e.g., a box is represented by 6 planar surfaces). These modeling technologies lack information that describes how edges and surfaces fit together to form the physical part. Information that describes the inside and outside of the modeled part is also missing. Because of those limitations, wireframe and surface modeling technologies are classified as informationally incomplete modeling representations. CAD/CAM applications built on these technologies cannot support full automation.
Once a part has been designed on a CAD/CAM system, NC tool paths can be created to automate machining of the part. NC tool paths are programs that control the operation of the machine tool as the machine tool cuts the part from raw stock A computer-aided design (CAD) system is used to create, document and analyze part models, while a computer-aided manufacturing (CAM) system is used to generate NC tool paths directly from the design model. This approach has only been moderately successful. Although a user (manufacturing engineer) of a CAM application may have a well defined strategy for how to machine a part, today's CAD/CAM systems cannot support automatic NC tool path generation. The reason is that wireframe and surface models do not provide complete part model information necessary for automated manufacturing.
As an example, suppose a user needs to create a tool path to cut a single part surface (e.g., the inside bottom surface of a coffee mug). Creating a surface tool path requires that x,y,z points representing the programming point of the tool while the tool remains tangent to the surface for the entire surface be calculated to a predetermined tolerance. When the resultant surface tool path is processed on the machine tool, the bottom center of the cutting tool is moved to each of the tool path x,y,z points in order. The result is that material in the path of the tool is removed.
Because surfaces are part of today's CAD/CAM modeling technology, there are methods for calculating NC tool paths for the surface of a part. However, knowledge of the surfaces of a part alone is not sufficient. The cutting tool must not gouge other surfaces of the part model (e.g., the side surfaces of the coffee mug). This might happen because a cutting tool has a radius greater than zero. Therefore, when the cutting tool comes within a tool radius of an adjoining surface, extra material can be gouged out of the adjoining surface. The machine tool cannot automatically avoid gouging adjoining surfaces because wireframe and surface models lack a description of the relationships between surfaces. For example, wireframe and surface models do not describe that the bottom surface of the coffee mug adjoins the side surfaces--the part's surfaces are modeled independently.
The traditional approaches for resolving this problem require user interaction. The user must manually supply additional information before a part can be manufactured. This is done by a variety of ad hoc ways today. All are time-intensive and prone to error.
The most common approach to CAM today is to create new surfaces specifically for machining. That is, rather than "teaching" the system that the side surfaces of a coffee mug adjoin the bottom surface, the user creates a new bottom surface that is smaller (by at least the cutting tool radius) than the bottom surface as originally designed. As a result, tool paths created for machining the new bottom surface keep the cutting tool away from any adjoining surfaces.
There are several problems with this approach. The most obvious is that the actual design model is not being used for manufacturing, but rather a manufacturing model is being recreated from the design model. This results in a gap between design and manufacturing because the same model is not being shared by design and manufacturing. A second problem is one of time (productivity) and the potential for human error because new surfaces must be created for every surface to be machined--perhaps hundreds of surfaces for a single part. Finally, the new surfaces are created based on the size of the cutting tool. If a different cutting strategy is desired, an entire new set of surfaces must be generated for the manufacturing model.
Researchers in the 1970's developed a new modeling technology called solid modeling, which became commercially available in the early 1980's to overcome the limitations of wireframe and surface modeling technologies. Solid modeling offers an informationally complete representation of three-dimensional parts. Whereas wireframe and surface models have descriptions of the geometry of a part to be manufactured only, solid models have descriptions of the geometry and the topology of the part. The geometry of the part is similar to the geometry for wireframe and surface modeling, but the topology of the part is a "road map" that describes how the surfaces defined by the model fit together to form the actual part being modeled.
Because a solid model describes parts completely and unambiguously, higher level operations such as union, difference and intersection of part models are possible. For instance, to create a hole in a part, a solid model of a cylinder can be positioned on a solid model of the part and geometrically subtracted--leaving the desired hole. Mathematically, this is a Boolean operation. Boolean operations are used throughout the invention described herein.